package com.wongoing.api.wechat.pub.entity;

import java.io.Serializable;

import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;

@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {
    "toUserName",
    "fromUserName",
    "createTime",
    "msgType",
    "event",
    "eventKey",
    "scanCodeInfo",
    "sendPicsInfo",
    "sendLocationInfo",
    "batchJob",
    "latitude",
    "longitude",
    "precision",
    "title",
    "description",
    "content",
    "picUrl",
    "mediaId",
    "format",
    "thumbMediaId",
    "location_X",
    "location_Y",
    "scale",
    "label",
    "recognition",
    "msgId",
    "agentID"
})
@XmlRootElement(name="xml")
public class Message implements Serializable {

	@XmlElement(name = "ToUserName")
	private String toUserName;					//接收人
	@XmlElement(name = "FromUserName")
	private String fromUserName;				//发送人
	@XmlElement(name = "CreateTime")
	private long createTime;					//消息创建时间（整型）
	@XmlElement(name = "MsgType")
	private String msgType;						//消息类型
	@XmlElement(name = "Event")
	private String event;						//事件类型，subscribe（订阅）、unsubscribe（取消订阅）、LOCATION（上报地理位置）、CLICK（上报菜单）、scancode_push（扫码推事件）、scancode_waitmsg（扫码推事件且弹出“消息接收中”）、pic_sysphoto（弹出系统拍照发图的事件推送）、pic_photo_or_album（弹出拍照或者相册发图的事件推送）、pic_weixin（弹出微信相册发图器的事件推送）、enter_agent（成员进入应用的事件推送）、batch_job_result（异步任务完成事件推送）
	@XmlElement(name = "EventKey")
	private String eventKey;					//事件KEY值，与自定义菜单接口中KEY值对应|设置的跳转URL
	@XmlElement(name = "ScanCodeInfo")
	private ScanCodeInfo scanCodeInfo;			//扫描信息
	@XmlElement(name = "SendPicsInfo")
	private SendPicsInfo sendPicsInfo;			//发送的图片信息
	@XmlElement(name = "SendLocationInfo")
	private SendLocationInfo sendLocationInfo;	//发送的位置信息
	@XmlElement(name = "BatchJob")
	private BatchJob batchJob;					//异步任务
	@XmlElement(name = "Latitude")
	private String latitude;					//地理位置纬度
	@XmlElement(name = "Longitude")
	private String longitude;					//地理位置经度
	@XmlElement(name = "Precision")
	private String precision;					//地理位置精度
	@XmlElement(name = "Title")
	private String title;						//标题
	@XmlElement(name = "Description")
	private String description;					//描述
	@XmlElement(name = "Content")
	private String content;						//文本消息内容
	@XmlElement(name = "PicUrl")
	private String picUrl;						//图片链接
	@XmlElement(name = "MediaId")
	private String mediaId;						//媒体文件id，可以调用获取媒体文件接口获取数据
	@XmlElement(name = "Format")
	private String format;						//语音格式，如amr，speex等
	@XmlElement(name = "ThumbMediaId")
	private String thumbMediaId;				//视频消息缩略图的媒体id，可以调用获取媒体文件接口获取数据
	@XmlElement(name = "Location_X")
	private String location_X;					//地理位置纬度
	@XmlElement(name = "Location_Y")
	private String location_Y;					//地址位置经度
	@XmlElement(name = "Scale")
	private int scale;							//地图缩放大小
	@XmlElement(name = "Label")
	private String label;						//地理位置信息
	@XmlElement(name = "Recognition")
	private String recognition;					//语音识别结果，UTF8编码
	@XmlElement(name = "MsgId")
	private long msgId;							//消息id，64位整型
	@XmlElement(name = "AgentID")
	private int agentID;						//企业应用的id，整型。可在应用的设置页面查看

	public String getToUserName() {
		return toUserName;
	}

	public void setToUserName(String toUserName) {
		this.toUserName = toUserName;
	}

	public String getFromUserName() {
		return fromUserName;
	}

	public void setFromUserName(String fromUserName) {
		this.fromUserName = fromUserName;
	}

	public long getCreateTime() {
		return createTime;
	}

	public void setCreateTime(long createTime) {
		this.createTime = createTime;
	}

	public String getMsgType() {
		return msgType;
	}

	public void setMsgType(String msgType) {
		this.msgType = msgType;
	}

	public String getEvent() {
		return event;
	}

	public void setEvent(String event) {
		this.event = event;
	}

	public String getEventKey() {
		return eventKey;
	}

	public void setEventKey(String eventKey) {
		this.eventKey = eventKey;
	}

	public ScanCodeInfo getScanCodeInfo() {
		return scanCodeInfo;
	}

	public void setScanCodeInfo(ScanCodeInfo scanCodeInfo) {
		this.scanCodeInfo = scanCodeInfo;
	}

	public SendPicsInfo getSendPicsInfo() {
		return sendPicsInfo;
	}

	public void setSendPicsInfo(SendPicsInfo sendPicsInfo) {
		this.sendPicsInfo = sendPicsInfo;
	}

	public SendLocationInfo getSendLocationInfo() {
		return sendLocationInfo;
	}

	public void setSendLocationInfo(SendLocationInfo sendLocationInfo) {
		this.sendLocationInfo = sendLocationInfo;
	}

	public BatchJob getBatchJob() {
		return batchJob;
	}

	public void setBatchJob(BatchJob batchJob) {
		this.batchJob = batchJob;
	}

	public String getLatitude() {
		return latitude;
	}

	public void setLatitude(String latitude) {
		this.latitude = latitude;
	}

	public String getLongitude() {
		return longitude;
	}

	public void setLongitude(String longitude) {
		this.longitude = longitude;
	}

	public String getPrecision() {
		return precision;
	}

	public void setPrecision(String precision) {
		this.precision = precision;
	}

	public String getTitle() {
		return title;
	}

	public void setTitle(String title) {
		this.title = title;
	}

	public String getDescription() {
		return description;
	}

	public void setDescription(String description) {
		this.description = description;
	}

	public String getContent() {
		return content;
	}

	public void setContent(String content) {
		this.content = content;
	}

	public String getPicUrl() {
		return picUrl;
	}

	public void setPicUrl(String picUrl) {
		this.picUrl = picUrl;
	}

	public String getMediaId() {
		return mediaId;
	}

	public void setMediaId(String mediaId) {
		this.mediaId = mediaId;
	}

	public String getFormat() {
		return format;
	}

	public void setFormat(String format) {
		this.format = format;
	}

	public String getThumbMediaId() {
		return thumbMediaId;
	}

	public void setThumbMediaId(String thumbMediaId) {
		this.thumbMediaId = thumbMediaId;
	}

	public String getLocation_X() {
		return location_X;
	}

	public void setLocation_X(String location_X) {
		this.location_X = location_X;
	}

	public String getLocation_Y() {
		return location_Y;
	}

	public void setLocation_Y(String location_Y) {
		this.location_Y = location_Y;
	}

	public int getScale() {
		return scale;
	}

	public void setScale(int scale) {
		this.scale = scale;
	}

	public String getLabel() {
		return label;
	}

	public void setLabel(String label) {
		this.label = label;
	}

	public String getRecognition() {
		return recognition;
	}

	public void setRecognition(String recognition) {
		this.recognition = recognition;
	}

	public long getMsgId() {
		return msgId;
	}

	public void setMsgId(long msgId) {
		this.msgId = msgId;
	}

	public int getAgentID() {
		return agentID;
	}

	public void setAgentID(int agentID) {
		this.agentID = agentID;
	}

}
